import java.util.*;
public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定，请勿修改，直接返回方法规定的值即可
     *
     *
     * @param A string字符串 
     * @return int整型
     */
    //以一个字符为中心向两边扩展求最长回文长度的方法
    public int func(String A,int start,int end){

        while(start>=0&&end<A.length()){
            if(A.charAt(start)!=A.charAt(end)){
                break;
            }
            start--;
            end++;
        }
        // 比如aba,以b为中心，start和end都会超出a的左右边界才会跳出循环，因此最后回文长度
        //需要-1
        return end-start-1;
    }
    public int getLongestPalindrome (String A) {
        // write code here

        //动态规划解法：
        //遍历每一个字符，以每一个字符为中心点，求出以每一个字符为中心点的最长回文长度（以每
        //  一个字符为中心扩散，有奇回文数和偶回文数两种情况）
        //不断更新最长的长度
        int ans=0;
        for(int i=0;i<A.length();i++){
            ans=Math.max(ans,Math.max(func(A,i,i),func(A,i,i+1)));
        }
        return ans;
    }
}